using AiQiuQuan.Sport.Model.Models;
using AiQiuQuan.Sport.Core;

namespace AiQiuQuan.Sport.WebApi.Services
{
    /// <summary>
    /// 场馆会员卡用户领取管理
    /// </summary>
    public interface IVenueUserCardService : ITransientDependency
    {
        /// <summary>
        /// 查询
        /// </summary>
        Task<VenueUserCardDto> GetAsync(Guid id);

        /// <summary>
        /// 分页查询
        /// </summary>
        Task<PageResult<VenueUserCardDto>> PageListAsync(VenueUserCardPageRequestDto request);

        /// <summary>
        /// 新增
        /// </summary>
        Task<UnaryResult> AddAsync(VenueUserCardAddDto model);

        /// <summary>
        /// 删除
        /// </summary>
        Task<UnaryResult> DeleteAsync(Guid id);

        /// <summary>
        /// 充值
        /// </summary>
        Task<UnaryResult> RechargeAsync(VenueUserCardAmountAddDto model);

        /// <summary>
        /// 用户会员卡统计信息
        /// </summary>
        /// <param name="cardId">卡套ID</param>
        Task<VenueUserCardStatisticsDto> StatisticsAsync(Guid cardId);
    }
}
